# SQLite是一种嵌入式数据库，它的数据库就是一个文件。由于SQLite本身是C写的，而且体积很小，所以，经常被集成到各种应用程序中，甚至在iOS和Android的App中都可以集成。
import sqlite3, datetime, random

a1 = ['张', '金', '李', '王', '赵']

a2 = ['玉', '明', '龙', '芳', '军', '玲']

a3 = ['', '立', '玲', '', '国', '']

# 如果文件不存在，会自动在当前目录创建:
conn = sqlite3.connect('test01.db')
# 创建一个cursor
cursor = conn.cursor()
sql = 'create table user (id str , name text)'


def create_table():
    conn = sqlite3.connect('test01.db')
    try:
        conn.execute(sql)
    except:
        print
        "Create table failed"
        return False


# 获取唯一随机数
def getUuid():
    nowTime = datetime.datetime.now().strftime("%Y%m%d%H%M%S");  # 生成当前时间
    randomNum = random.randint(0, 100);  # 生成的随机整数n，其中0<=n<=100
    if randomNum <= 10:
        randomNum = str(0) + str(randomNum);
    return str(nowTime) + str(randomNum);


# 获取唯一名字
def getName():
    return random.choice(a1) + random.choice(a2) + random.choice(a3)


# 执行一条sql语句.创建表
create_table()

# 插入数据
insertSql = 'insert into user (id, name) values (:u_id, :u_name)'
cursor.execute(insertSql, {'u_id': getUuid(), 'u_name': getName()})
# 通过rowcount获得插入的行数:
print(cursor.rowcount)
# 关闭cursor
cursor.close()
# 提交事务
conn.commit()
# 关闭连接
conn.close()
print('*******************************查询语句********************************************')
conn = sqlite3.connect('test01.db')
cursor = conn.cursor()
sqlQ = 'select * from user'
# 执行查询语句:
cursor.execute(sqlQ)
# 获得查询结果集:
values = cursor.fetchall()
for user in values:
    print(user)

sqll = 'select * from user where name= 2019121615224856'
cursor.execute(sqll)
values = cursor.fetchall()
print(values)
# 查找后面一定有逗号
cursor.execute('select * from user where name=?', ('李军',))
values = cursor.fetchall()
print(values)
cursor.close()
conn.close()
